LuaLaTeX

Luaが使えるTeX処理系LuaTeXにLaTeXを組み込んだもの。実行は遅いが、かなり高度な組版ができる。
DVIを経由せずPDFを直接出力するため、フォントの情報を用いた組版ができたり、画像周りの難点が下がったりしている。

同様にPDFを直接出力するTeXとしてpdf(La)TeXがあり海外ではこれが標準の地位を占めつつあるが、pdfLaTeXではあまりきちんとした日本語組版ができないため、pdfLaTeXの系譜であるLuaLaTeXが日本では「未来の標準TeX」として期待されているといった状況(2019年11月現在)。
「pdfLaTeXの後継がLuaLaTeXであること」は決定しているらしい1
前述の事情から海外で最近作られたパッケージの中にはpdfLaTeX向けでありpLaTeXでは動かないものがあるが、そういうものがLuaLaTeXでは動いてくれるという嬉しさもある。

なお、LuaTexの側はLaTeXではなくConTeXtを念頭に開発しているので、LaTeXとの関係はあまり考慮されていないんだとか……2

実行

1コマンドでtexソースからpdfができあがる.

$ lualatex hoge.tex

Hello, world

bxjsclsを使うと概ねpLaTeXと同じような使い勝手で使えるのでおすすめ.
このドキュメントクラスは,(以下のように設定すると)内部で日本語文書のためのパッケージ(LuaTeX-jaとluatexja-fontspec)を読み込んでくれる.

\documentclass[lualatex, ja=standard]{bxjsarticle}
\begin{document}
こんにちは世界!
\end{document}

他のドキュメントクラス(とくに英語圏のもの)を使う場合は,フォント設定を適切に行わないと日本語は出力できない.
フォント設定だけでも日本語の文字の出力は可能だが,和欧混植のような日本語の文章で普通な組版のために,LuaTeX-jaを使うのがよいと思う.

フォント設定

以下ではluatexja-fontspecを前提とした説明を行う。

詳細は

$ texdoc luatexja # LuaTeXja及びluatexja-fontspecに固有の情報
$ texdoc fontspec # fontspec一般の情報

を参照。
luatexja-fontspecは、fontspecという一般的なフォント選択用パッケージに対して日本語組版のための拡張(和文書体・欧文書体を別に扱う等)を施したものであるため、fontspecの基本的な機能についての解説はluatexja側のドキュメントには書かれておらず、fontspec側のドキュメントを参照する必要がある。

デフォルト和文フォントの指定

\documentclass[lualatex, ja=standard]{bxjsarticle}

% メイン和文フォント(~明朝体フォント)の指定
\setmainjfont{J-IwaOMinPr6N-Th}[
  BoldFont={J-IwaOMinPr6N-Bd}
]

% ゴシック体和文フォントの指定
\setsansjfont{J-IwaOGoPr6N-Lt}[
  BoldFont={J-IwaOGoPr6N-Bd}
]

\begin{document}
\section{自由な1粒子の場合のSchrödinger方程式}
自由な1粒子の場合、Schrödinger方程式は次のように書ける。
\end{document}

beamerの場合の例

以下はbeamerで源ノ角ゴシック + Source Sans Proを使う場合の例。

\documentclass{beamer}

% luatexja及びluatexja-fontspecを読み込む
\usepackage{luatexja}
\usepackage{luatexja-fontspec}

% フォントを源ノ明朝、源ノ角ゴシックにする(sourcehan)
% \textbf等で和文書体も切り替えるようにする(match)
% 和文サイズ/欧文サイズ = 0.924865 にする(scale)
\usepackage[sourcehan,match,scale=0.924865]{luatexja-preset}

% 和文のデフォルト書体をゴシック体に変更
\renewcommand{\kanjifamilydefault}{\gtdefault}

% 欧文サンセリフ体を Source Sans Pro にする
% 但し太字は Semi Bold にする
\setsansfont[BoldFont={Source Sans Pro Semi Bold}]{Source Sans Pro}

% 和文ゴシック体を源ノ角ゴシックにする
% 但し標準、太字をそれぞれRegular, Boldにする
\setsansjfont[BoldFont={Source Han Sans Bold}]{Source Han Sans Regular}

\title{サンプルSamplingの性質}
\subtitle{すべての人間に向けて}
\author{匿名276}
\date{\today}

\begin{document}
\frame{\titlepage}
\section{概要}
\begin{frame}
    \frametitle{第1の啓示}
    \begin{enumerate}
        \item ほげhoge
        \item \textbf{ふがfuga}
        \item ぴよpiyo
    \end{enumerate}
\end{frame}

\end{document}

ページに背景を入れる

いくつか方法があるが、LuaLaTeXを使うならbackgroundパッケージを使うのが楽そう。

\documentclass[lualatex,ja=standard]{bxjsarticle}

\usepackage{graphicx}
\usepackage{background}
\backgroundsetup{
scale=1,
color=black,
opacity=1,
angle=0,
contents={\includegraphics[width=\paperwidth,height=\paperheight]{sample.pdf}}
}

\begin{document}
ほげほげ
\end{document}

Lua周り

Luaでループさせる

TeXコードでループさせるのはいろいろと大変だが、以下のようにLuaのループ構文とtex.sprintを使うと比較的簡単に繰り返しが書ける。

細かい挙動(特に特殊文字回り)は正直よくわからないが、\directlua{\detokenize{ }}で囲んだ中にLuaのコードを書けばいい感じに動いてくれそうな雰囲気。

% いろいろなNに対する実験結果のグラフを張り込む例
\directlua{\detokenize{
  for i,value in ipairs({7, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20}) do
    tex.sprint("\\subsection{N=", value, "のとき}")
    tex.print("\\subsubsection{結果}")
    tex.sprint("\\includegraphics[height=9cm]{image/img", value, ".png}")
  end
}}

最終更新: 2020-01-10 14:24:02 +0900

[Top]

This page is generated by sinanoki.